package com.zygh.lz.service;

import cn.hutool.core.date.DateUtil;
import com.zygh.lz.entity.IllegalData;
import com.zygh.lz.entity.PoliceData;
import com.zygh.lz.entity.remould.Assess;
import io.swagger.models.auth.In;
import org.springframework.scheduling.annotation.Async;
import org.springframework.web.bind.annotation.RequestParam;

import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 大队档案统计
 *
 * @author wxh
 */
public interface BrigadeRecordService {
    /**
     * 获取总巡逻时长
     *
     * @param sectionId 部门id
     * @param startTime 统计开始时间
     * @param endTime   统计结束时间
     * @return 总巡逻时长
     */
    List<Map> getTotalPatrolDuration(Integer sectionId, String startTime, String endTime) throws ParseException;


    List<Map> positionOf(String sectionId);

    Map<String, Object> alertInfo(Integer id);

    List<Map> informationInfo(Integer sectionId);

    List<Map<String, Object>> illegalData(Integer sectionId, Integer sysStaffId, String startTime, String endTime, Integer depthNumber);

    Map illegalDataNum(Integer sectionId, String startTime, String endTime);

    /**
     * 获取总空岗数量
     *
     * @param sectionId 部门id
     * @param startTime 统计开始时间
     * @param endTime   统计结束时间
     * @return 总空岗数量
     */
    Integer getTotalVacantPost(Integer sectionId, String startTime, String endTime);

    /**
     * 获取签到统计
     *
     * @param sectionId 部门id
     * @param startTime 统计开始时间
     * @param endTime   统计结束时间
     * @return 签到统计
     */
    List<Map<String, Object>> getSignStatistics(Integer sectionId, String startTime, String endTime);

    List<Map<String, Object>> getSignWeek(Integer sectionId, String startTime, String endTime) throws ParseException;

    /**
     * 获取大队排名
     *
     * @param sectionId 部门id
     * @param startTime 统计开始时间
     * @param endTime   统计结束时间
     * @return 大队排名
     */
    List<Map<String, Object>> getBrigadeRanking(Integer sectionId, String startTime, String endTime);

    /**
     * 获取总巡查里程与签到趋势
     *
     * @param sectionId 部门id
     * @param startTime 统计开始时间
     * @param endTime   统计结束时间
     * @return 总巡查里程与签到趋势
     */
    List<Map<String, Object>> getMileageAndSignTrend(Integer sectionId, String startTime, String endTime);

    /**
     * 获取顶部信息
     *
     * @param sectionId 部门id
     * @return 顶部信息
     */
    List<Map<String, Object>> getTopChange(Integer sectionId);


    Map efficiency(Integer id);

    void efficiencyData(String startTime, String endTime);

    Map getPoliceData(Integer sectionId, String startTime, String endTime);

    List<Map> getJieChuJing(Integer sectionId, String startTime, String endTime, Integer depthNumber);

    List<Map<String, Object>> getWeekJieChuJing(Integer sectionId, String startTime, String endTime) throws ParseException;

    List<Map> getWeekillegallyPark(Integer sectionId, String startTime, String endTime) throws ParseException;

    Map getWeekInformation(Integer sectionId, String startTime, String endTime);

    List<Map> focusOnIllegal(Integer sectionId, String startTime, String endTime);

    Map InformationReported(Integer sectionId, String startTime, String endTime);

    List<Map> problemReportedType(Integer sectionId, String startTime, String endTime);

    List<Map> hourLiveness(Integer sectionId);


}
